/**
 * 循环单链表
 */
#ifndef DATA_STRUCTURE_SCLINKEDLIST_H
#define DATA_STRUCTURE_SCLINKEDLIST_H

#include "option_config.h"

//初始化
void InitScLinkedList(List *list);

//尾插法
void scLinkedList_push_back(List *list, ElemType x);

//头插法
void scLinkedList_push_front(List *list, ElemType x);

//数据显示
void scLinkedList_show_list(List *list);

//尾删除
void scLinkedList_pop_back(List *list);

//头删除
void scLinkedList_pop_front(List *list);

//按值插入
void scLinkedList_insert_val(List *list, ElemType x);

//按值查找
Node *scLinkedList_find(List *list, ElemType x);

//结点个数
int scLinkedList_length(List *list);

//按值删除
void scLinkedList_delete_val(List *list, ElemType x);

//排序(升序)
void scLinkedList_sort(List *list);

//倒置
void scLinkedList_resver(List *list);

//清空结点
void scLinkedList_clear(List *list);

//销毁
void scLinkedList_destory(List *list);


#endif //DATA_STRUCTURE_SCLINKEDLIST_H
